package com.gitee.mp.annotation;

import com.gitee.mp.extend.ExtendParamsGenerator;
import io.milvus.param.IndexType;

import java.lang.annotation.*;

/**
 * 索引
 *
 * @author hongda.li
 */
@Inherited
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Index {
    /**
     * 索引名称
     *
     * @return 索引名称
     */
    String name() default "";

    /**
     * 索引类型
     *
     * @return 索引类型
     */
    IndexType type() default IndexType.IVF_FLAT;

    /**
     * 扩展配置生成器
     * 此生成器需要存在于 SpringContext 中
     *
     * @return 扩展配置生成器
     */
    Class<? extends ExtendParamsGenerator> generator() default ExtendParamsGenerator.class;
}
